package com.erp.app.admin.companySetup.vo;

import java.sql.Timestamp;
import java.util.ArrayList;

import com.erp.app.admin.companySetup.pk.CompanyImagePk;
import com.erp.app.common.types.ViewableImage;
import com.erp.framework.model.pk.SimpleBasePk;
import com.erp.framework.model.schema.MetaData;
import com.erp.framework.model.vo.SimpleBaseVo;

public class CompanyImageVo extends SimpleBaseVo implements ViewableImage {

    protected void setChildTypesName() {
        // this.childTypesName=new String[2];
        // this.childTypesName[0]="com.erp.app.form.beans.FormApprovalListVO";
        // this.childTypesName[1]="com.erp.app.form.beans.FormAttachmentVO";
    }

    protected void setDaoName() {
        this.daoName = "com.erp.app.admin.companySetup.dao.CompanyImageDao";
    }

    public SimpleBasePk getPrimaryKey() {
        return new CompanyImagePk(this.companyCode, this.id);
    }

    private String companyCode;
    private String id;
    private String contentType;
    private byte[] image;
    private String createUser;
    private Timestamp createDate;
    private String updateUser;
    private Timestamp updateDate;

    public Timestamp getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Timestamp createDate) {
        this.createDate = createDate;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public Timestamp getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Timestamp updateDate) {
        this.updateDate = updateDate;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    public static void setTs(ArrayList ts) {
        CompanyImageVo.ts = ts;
    }

    public String getCompanyCode() {
        return companyCode;
    }

    public String getId() {
        return id;
    }

    public String getContentType() {
        return contentType;
    }

    public byte[] getImage() {
        return image;
    }

    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setContentType(String contentType) {
        this.contentType = contentType;
    }

    public void setImage(byte[] image) {
        this.image = image;
    }

    private static ArrayList ts = new ArrayList();

    public static ArrayList getTs() {
        return ts;
    }

    static {
        MetaData md = null;
        md = new MetaData();
        md.setColumnName("COMPANY_CODE");
        md.setVoPropertyName("companyCode");
        md.setColumnTitle("COMPANY_CODE");
        md.setColumnTypeName("VARCHAR2");
        md.setColumnType(12);
        md.setColumnSize(30);
        md.setColumnCatalogName("");
        md.setColumnClassName("java.lang.String");
        md.setColumnPrecision(30);
        md.setColumnScale(0);
        md.setIsNullable(0);
        ts.add(md);
        md = new MetaData();
        md.setColumnName("ID");
        md.setVoPropertyName("id");
        md.setColumnTitle("ID");
        md.setColumnTypeName("VARCHAR2");
        md.setColumnType(12);
        md.setColumnSize(30);
        md.setColumnCatalogName("");
        md.setColumnClassName("java.lang.String");
        md.setColumnPrecision(30);
        md.setColumnScale(0);
        md.setIsNullable(0);
        ts.add(md);
        md = new MetaData();
        md.setColumnName("CONTENT_TYPE");
        md.setVoPropertyName("contentType");
        md.setColumnTitle("CONTENT_TYPE");
        md.setColumnTypeName("VARCHAR2");
        md.setColumnType(12);
        md.setColumnSize(30);
        md.setColumnCatalogName("");
        md.setColumnClassName("java.lang.String");
        md.setColumnPrecision(30);
        md.setColumnScale(0);
        md.setIsNullable(1);
        ts.add(md);
        md = new MetaData();
        md.setColumnName("IMAGE");
        md.setVoPropertyName("image");
        md.setColumnTitle("IMAGE");
        md.setColumnTypeName("LONG RAW");
        md.setColumnType(-4);
        md.setColumnSize(0);
        md.setColumnCatalogName("");
        md.setColumnClassName("byte[]");
        md.setColumnPrecision(2147483647);
        md.setColumnScale(0);
        md.setIsNullable(1);
        ts.add(md);
        md = new MetaData();
        md.setColumnName("CREATE_USER");
        md.setVoPropertyName("createUser");
        md.setColumnTitle("CREATE_USER");
        md.setColumnTypeName("VARCHAR2");
        md.setColumnType(12);
        md.setColumnSize(30);
        md.setColumnCatalogName("");
        md.setColumnClassName("java.lang.String");
        md.setColumnPrecision(30);
        md.setColumnScale(0);
        md.setIsNullable(1);
        ts.add(md);
        md = new MetaData();
        md.setColumnName("CREATE_DATE");
        md.setVoPropertyName("createDate");
        md.setColumnTitle("CREATE_DATE");
        md.setColumnTypeName("DATE");
        md.setColumnType(91);
        md.setColumnSize(7);
        md.setColumnCatalogName("");
        md.setColumnClassName("java.sql.Timestamp");
        md.setColumnPrecision(0);
        md.setColumnScale(0);
        md.setIsNullable(1);
        ts.add(md);
        md = new MetaData();
        md.setColumnName("UPDATE_USER");
        md.setVoPropertyName("updateUser");
        md.setColumnTitle("UPDATE_USER");
        md.setColumnTypeName("VARCHAR2");
        md.setColumnType(12);
        md.setColumnSize(30);
        md.setColumnCatalogName("");
        md.setColumnClassName("java.lang.String");
        md.setColumnPrecision(30);
        md.setColumnScale(0);
        md.setIsNullable(1);
        ts.add(md);
        md = new MetaData();
        md.setColumnName("UPDATE_DATE");
        md.setVoPropertyName("updateDate");
        md.setColumnTitle("UPDATE_DATE");
        md.setColumnTypeName("DATE");
        md.setColumnType(91);
        md.setColumnSize(7);
        md.setColumnCatalogName("");
        md.setColumnClassName("java.sql.Timestamp");
        md.setColumnPrecision(0);
        md.setColumnScale(0);
        md.setIsNullable(1);
        ts.add(md);
    }

    protected void setSchema() {
        this.tableSchema = ts;
    }

    public String getImageContentType() {
        return contentType;
    }

    public byte[] getImageByte() {
        return image;
    }
}
